use std::io;
use thiserror::Error;

#[derive(Debug, Error)]
pub enum RiboIoError {
    #[error("Failed to download image: {0}")]
    DownloadError(String),

    #[error("Failed to read local file: {0}")]
    FileReadError(#[from] io::Error),

    #[error("Invalid input: {0}")]
    InvalidInput(String),

    #[error("Invalid coordinate: {0}")]
    InvalidCoordinate(String),

    #[error("Failed to load image from URL: {0}")]
    UrlError(String),

    #[error("Failed to decode image: {0}")]
    DecodeError(String),
}
